//
// afix_memory.h
//

#ifndef _CHLDS_MEMORY_H_
#define _CHLDS_MEMORY_H_

#include "chlds_type.h"

#include <malloc.h>
#include <memory.h>

#ifdef __cplusplus
extern "C" {
#endif

/* memory operations */
#define MEMORY_ALLOC(_size)                 malloc((_size))
#define MEMORY_REALLOC(_p, _size)           realloc((_p), (_size));
#define MEMORY_FREE(_p)                     free((_p))

#define MEMORY_ZERO(_p, _size)              memset((_p), 0, (_size))
#define MEMORY_SET(_p, _v, _size)           memset((_p), (_v), (_size))
#define MEMORY_COPY(_dst, _src, _size)      memcpy((_dst), (_src), (_size))

#define MEMORY_OFFSET(_base, _count, _size) ((byte*)(_base) + (_count) * (_size))

#ifdef __cplusplus
}
#endif

#endif // _AFIX_MEMORY_H_
